   /*******************************************************/
   /*      "C" Language Integrated Production System      */
   /*                                                     */
   /*               CLIPS Version 6.30  03/04/08          */
   /*                                                     */
   /*                                                     */
   /*******************************************************/

/*************************************************************/
/* Purpose:                                                  */
/*                                                           */
/* Principal Programmer(s):                                  */
/*      Brian L. Dantes                                      */
/*                                                           */
/* Contributing Programmer(s):                               */
/*                                                           */
/* Revision History:                                         */
/*      6.23: Corrected compilation errors for files         */
/*            generated by constructs-to-c. DR0861           */
/*                                                           */                                      
/*      6.24: The DescribeClass macros were incorrectly      */
/*            defined. DR0862                                */
/*                                                           */
/*            Added allowed-classes slot facet.              */
/*                                                           */
/*            Renamed BOOLEAN macro type to intBool.         */
/*                                                           */
/*      6.30: Added EnvSlotDefaultP function.                */
/*                                                           */
/*************************************************************/

#ifndef _H_classexm
#define _H_classexm

#ifdef LOCALE
#undef LOCALE
#endif

#ifdef _CLASSEXM_SOURCE_
#define LOCALE
#else
#define LOCALE extern
#endif

#define BrowseClasses(a,b) EnvBrowseClasses(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define DescribeClass(a,b) EnvDescribeClass(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotDirectAccessP(a,b) EnvSlotDirectAccessP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotExistP(a,b,c) EnvSlotExistP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b,c)
#define SlotInitableP(a,b) EnvSlotInitableP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotPublicP(a,b) EnvSlotPublicP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotDefaultP(a,b) EnvSlotDefaultP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotWritableP(a,b) EnvSlotWritableP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SubclassP(a,b) EnvSubclassP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SuperclassP(a,b) EnvSuperclassP(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b)
#define SlotDefaultValue(a,b,c) EnvSlotDefaultValue(GetCurrentEnvironment(),GetCurrentExecutionStatus(),a,b,c)

#if DEBUGGING_FUNCTIONS
LOCALE void BrowseClassesCommand(void *, EXEC_STATUS);
LOCALE void EnvBrowseClasses(void *,EXEC_STATUS,char *,void *);
LOCALE void DescribeClassCommand(void *,EXEC_STATUS);
LOCALE void EnvDescribeClass(void *,EXEC_STATUS,char *,void *);
#endif

LOCALE char *GetCreateAccessorString(void *);

LOCALE void *GetDefclassModuleCommand(void *,EXEC_STATUS);
LOCALE intBool SuperclassPCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSuperclassP(void *,EXEC_STATUS,void *,void *);
LOCALE intBool SubclassPCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSubclassP(void *,EXEC_STATUS,void *,void *);
LOCALE int SlotExistPCommand(void *, EXEC_STATUS);
LOCALE intBool EnvSlotExistP(void *,EXEC_STATUS,void *,char *,intBool);
LOCALE int MessageHandlerExistPCommand(void *, EXEC_STATUS);
LOCALE intBool SlotWritablePCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSlotWritableP(void *,EXEC_STATUS,void *,char *);
LOCALE intBool SlotInitablePCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSlotInitableP(void *,EXEC_STATUS,void *,char *);
LOCALE intBool SlotPublicPCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSlotPublicP(void *,EXEC_STATUS,void *,char *);
LOCALE intBool SlotDirectAccessPCommand(void *,EXEC_STATUS);
LOCALE intBool EnvSlotDirectAccessP(void *,EXEC_STATUS,void *,char *);
LOCALE void SlotDefaultValueCommand(void *,EXEC_STATUS,DATA_OBJECT_PTR);
LOCALE intBool EnvSlotDefaultValue(void *,EXEC_STATUS,void *,char *,DATA_OBJECT_PTR);
LOCALE int ClassExistPCommand(void *, EXEC_STATUS);
LOCALE int EnvSlotDefaultP(void *,EXEC_STATUS,void *,char *);
  
#ifndef _CLASSEXM_SOURCE_
#endif

#endif
